package dao;

import java.util.ArrayList;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.exception.JDBCConnectionException;

import dominio.Alquilermaterialdeportivo;

import excepciones.DAOExcepcion;

public class DaoAlquilerMaterialDeportivo {

	private static final String SQL_LISTAR_ALQUILER_MATERIAL_DEPORTIVO = "From Alquilermaterialdeportivo";
	
	private Session sesion = null; // Hibernate Session
	private Transaction tx = null; // Hibernate Transaction

	public ArrayList ListarAlquileresMaterialDeportivo() throws DAOExcepcion{		
		try {
			sesion = UtilidadHibernate.getSessionFactory().openSession();
			sesion.beginTransaction();
			ArrayList ListaAlquileresMaterialDeportivo = (ArrayList) sesion.createQuery(SQL_LISTAR_ALQUILER_MATERIAL_DEPORTIVO).list();
			sesion.getTransaction().commit();
			sesion.close();
			return ListaAlquileresMaterialDeportivo;
		} 
		catch (JDBCConnectionException e){  // no puede conectar con la bd, error grave.
			System.out.println("Error al conectar con la base de datos " + e + "\n");
		}
		catch (HibernateException e) {
			tx.rollback();
			throw new DAOExcepcion(e);
		} 
		return null;
	}

	public void anadirAlquilerMaterialDeportivo(
			Alquilermaterialdeportivo alquilerMaterialDeportivo) throws DAOExcepcion {
		try {
			sesion = UtilidadHibernate.getSessionFactory().openSession();
			tx = sesion.beginTransaction();
			sesion.save(alquilerMaterialDeportivo);
			tx.commit();
		} 
		catch (JDBCConnectionException e){  // no puede conectar con la bd, error grave.
			System.out.println("Error al conectar con la base de datos " + e + "\n");
		}
		catch (HibernateException e) {
			tx.rollback();
			throw new DAOExcepcion(e);
		} 
		return;
	}
}
